#ifndef __SDL_STRING_INPUT_H__
#define __SDL_STRING_INPUT_H__

#include "sdlTextImage.h"
#include "sdlFont.h"

enum filter {normal, asterisk, invisible};
enum modoInput {ambos, numeros, letras};

class sdlStringInput: public sdlTextImage{
private:
    sdlFont font;
    std::string text;
    filter modo;
    ColorTextImage::Colors color;
    unsigned maxLength;
    modoInput mInput;
public:
	//Construye un StringInput cuyo tamaño de letra (si se muestra en pantalla)
	//es el int, el filtro es como se muestra el string, y finalmente el color.
	sdlStringInput(int = 20, filter = normal, ColorTextImage::Colors = ColorTextImage::negro);
	//Limita la cantidad de caracteres que se obtienen
	void setMaxLength(unsigned);
	//Setea el tipo de filtro
	void setFilter(filter);
	//Setea el color
	void setColor(ColorTextImage::Colors);
	//Setea el tipo de caracteres admitidos
	void setModoInput(modoInput);
	//Devuelve un string con el texto que se obtuvo
	std::string getTexto();
	//Limpia el texto obtenido
	void resetText();
	//Maneja los inputs del usuario
	bool handleEvent(const SDL_Event&);
	~sdlStringInput();
private:
	void adaptarAModo(const std::string&,std::string&);
};

#endif // __SDL_STRING_INPUT_H__
